home *** CD-ROM | disk | FTP | other *** search
- #pragma inline
-
- #define DLE 16
- #define ENQ 5
- #define ESC 27
-
- void _setenvp(void){} /* dummy out _setenvp */
-
- int _stklen = 0x200;
-
-
- exit(int n)
- {
- _exit(n);
- }
-
- int user_abort()
- {
- if(chkkbd())
- {
- if(fgetkey()==ESC)
- return 1;
- }
- return 0;
- }
-
- stoi(s)
- register char *s;
- {
- register unsigned int j;
-
- j=0;
- while(*s>='0' && *s<='9') /* loop through and convert */
- j=j*10+(*s++-'0');
- return j;
- }
-
- cls()
- {
- putchar(ESC);
- putchar('[');
- putchar('2');
- putchar('J');
- }
-
- unsigned int mono;
- unsigned int scrseg;
-
- main(argc,argv)
- int argc;
- char **argv;
- {
- unsigned int baud,port;
- unsigned int duplex;
- int ch;
-
- /* disable break key */
- asm mov ah,33h
- asm mov al,1
- asm mov dl,0
- asm int 21h
-
- sput("TCQB version 1.1e, 2/29/88: Copyright 1988, John Bridges (CIS:73307,606)\r\n");
- duplex=0;
- baud=0;
- port=1;
- if(argc>1)
- {
- ch=*argv[1];
- if(ch>='a' && ch<='z')
- ch-=32;
- if(ch=='F')
- duplex=0;
- else
- if(ch=='H')
- duplex=1;
- else
- bad();
- }
- if(argc>2)
- {
- port=stoi(argv[2]);
- if(port<1 || port>2)
- bad();
- }
- if(argc>3)
- baud=stoi(argv[3]);
- cominit(baud,port);
- for(;;)
- {
- while(chkkbd())
- {
- ch=fgetkey();
- switch(ch)
- {
- case ESC:
- case 45|256: /* Alt-X */
- goto quit;
- case 18|256: /* Alt-E */
- duplex=!duplex;
- break;
- case 46|256: /* Alt-C */
- cls();
- break;
- default:
- if(ch<256)
- {
- if(duplex)
- putchar(ch);
- cputc(ch);
- }
- }
- }
- if((ch=getcom())!=-1)
- {
- switch(ch&=0x7f)
- {
- case DLE:
- bp_DLE();
- break;
- case ENQ:
- bp_ENQ();
- break;
- case 'L'-64: /* Form Feed */
- cls();
- break;
- default:
- putchar(ch);
- }
- }
- }
- quit: comrest();
- sput("\r\n");
- }
-
-
- bad()
- {
- sput("\r\n usage: TCQB [[[HALF|FULL] PORTNUMBER] BAUDRATE]\r\n");
- exit(1);
- }
-